package net.guoyixian.admin.mapper;

import java.util.Set;

import net.guoyixian.admin.pojo.Store;
import net.guoyixian.admin.pojo.User;
import net.guoyixian.common.datasource.DataSource;
import net.guoyixian.common.datasource.DataSource.SourceType;
import net.guoyixian.common.web.Where;

import org.apache.ibatis.annotations.Param;

import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;

public interface UserMapper{
	
	/**
	 * 根据用户名、密码查询
	 * @param user
	 * @return
	 */
	public User queryByUsernameAndPassword(User user);
	
	/**
	 * 根据用户名查询
	 * @param username
	 * @return
	 */
	public User queryByUsername(String username);
	
	/**
     * 按照分页查询
     * 
     * @param bounds
     * @return
     */
	public PageList<Store> queryList(PageBounds bounds,@Param("username") String username,@Param("realname") String realname);

    /**
     * 按照where条件分页查询
     * 
     * @param bounds
     * @param where
     * @return
     */
    public PageList<User> queryListByWhere(PageBounds bounds, @Param("where") Where where);

    /**
     * 通过ID查询数据
     * 
     * @param id
     * @return
     */
    public User queryByID(@Param("id") String id);

    /**
     * 通过where条件查询
     * 
     * @param where
     * @return
     */
    public User queryByWhere(@Param("where") Where where);

    /**
     * 新增数据
     * 
     * @param t
     */
    public void save(User user);

    /**
     * 更新数据
     * 
     * @param t
     */
    public void update(User user);

    /**
     * 通过ID删除数据
     * 
     * @param id
     * @return 返回受影响的条数
     */
    public Integer deleteByID(@Param("id") Long id);

    /**
     * 通过IDs删除数据
     * 
     * @param ids
     * @return 返回受影响的条数
     */
    public Integer deleteByIDS(@Param("ids") Long[] ids);
	
	public Set<String> findRoles(@Param("username")String username);

}
